/********************************************************************************
 * Copyright (c) 2021,2022 Contributors to the CatenaX (ng) GitHub Organisation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Apache License, Version 2.0 which is available at
 * https://www.apache.org/licenses/LICENSE-2.0.
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 *
 * SPDX-License-Identifier: Apache-2.0
 ********************************************************************************/

export interface PartsCoordinates {
  coordinates: number[];
  numberOfParts: number;
}

export interface AssetsPerPlant {
  coordinates: number[];
  assetsCount: number;
  countryCode: string;
  manufacturer: string;
  businessPartnerName?: string;
  country?: string;
}

export interface MapChart {
  assetsPerPlant: AssetsPerPlant[];
  coordinates: PartsCoordinates[];
}

export const supportedLanguages = [
  'ar',
  'zh-Hans',
  'zh-Hant',
  'en',
  'fr',
  'de',
  'it',
  'ja',
  'ko',
  'mul',
  'pt',
  'ru',
  'es',
  'vi',
];

export /** @type {*} */
const MAPPING = {
  'marker-1': {
    x: 0,
    y: 0,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-2': {
    x: 220,
    y: 0,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-3': {
    x: 420,
    y: 0,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-4': {
    x: 620,
    y: 0,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-5': {
    x: 820,
    y: 0,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-6': {
    x: 1020,
    y: 0,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-7': {
    x: 1220,
    y: 0,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-8': {
    x: 1420,
    y: 0,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-9': {
    x: 0,
    y: 250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-10': {
    x: 220,
    y: 250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-20': {
    x: 420,
    y: 250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-30': {
    x: 620,
    y: 250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-40': {
    x: 820,
    y: 250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-50': {
    x: 1020,
    y: 250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-60': {
    x: 1220,
    y: 250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-70': {
    x: 1420,
    y: 250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-80': {
    x: 0,
    y: 500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-90': {
    x: 220,
    y: 500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-100': {
    x: 420,
    y: 500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-200': {
    x: 620,
    y: 500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-300': {
    x: 820,
    y: 500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-400': {
    x: 1020,
    y: 500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-500': {
    x: 1220,
    y: 500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-600': {
    x: 1420,
    y: 500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-700': {
    x: 0,
    y: 750,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-800': {
    x: 220,
    y: 750,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-900': {
    x: 420,
    y: 750,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-1000': {
    x: 620,
    y: 750,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-2000': {
    x: 820,
    y: 750,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-3000': {
    x: 1020,
    y: 750,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-4000': {
    x: 1220,
    y: 750,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-5000': {
    x: 1420,
    y: 750,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-6000': {
    x: 0,
    y: 1000,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-7000': {
    x: 220,
    y: 1000,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-8000': {
    x: 420,
    y: 1000,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-9000': {
    x: 620,
    y: 1000,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-10000': {
    x: 820,
    y: 1000,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-20000': {
    x: 1020,
    y: 1000,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-30000': {
    x: 1220,
    y: 1000,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-40000': {
    x: 1420,
    y: 1000,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-50000': {
    x: 0,
    y: 1250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-60000': {
    x: 220,
    y: 1250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-70000': {
    x: 420,
    y: 1250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-80000': {
    x: 620,
    y: 1250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-90000': {
    x: 820,
    y: 1250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-100000': {
    x: 1020,
    y: 1250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-200000': {
    x: 1220,
    y: 1250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-300000': {
    x: 1420,
    y: 1250,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-400000': {
    x: 0,
    y: 1500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-500000': {
    x: 220,
    y: 1500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-600000': {
    x: 420,
    y: 1500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-700000': {
    x: 620,
    y: 1500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-800000': {
    x: 820,
    y: 1500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-900000': {
    x: 1020,
    y: 1500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  'marker-1000000': {
    x: 1220,
    y: 1500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
  marker: {
    x: 1420,
    y: 1500,
    width: 220,
    height: 250,
    anchorY: 250,
  },
};

export const CountryLocationMap = {
  ABW: { coordinates: [-69.9756409523066, 12.5156286858793], place_name: 'Aruba' },
  AFG: { coordinates: [66.0264709817607, 33.8388058603423], place_name: 'Afghanistan' },
  AGO: { coordinates: [17.912292115939, -12.0993951347033], place_name: 'Angola' },
  AIA: { coordinates: [-63.0818298, 18.1945854999999], place_name: 'Anguilla' },
  ALA: { coordinates: [19.93993403, 60.11443267], place_name: 'Aland Islands' },
  ALB: { coordinates: [20.1566908111252, 40.641089555859], place_name: 'Albania' },
  AND: { coordinates: [1.57676643468505, 42.5486542501806], place_name: 'Andorra' },
  ARE: { coordinates: [54.2561723713588, 23.8520599823879], place_name: 'United Arab Emirates' },
  ARG: { coordinates: [-63.954193, -36.252002], place_name: 'Argentina' },
  ARM: { coordinates: [44.6603948347298, 40.6056564938472], place_name: 'Armenia' },
  ASM: { coordinates: [-170.707833250312, -14.304405426733], place_name: 'American Samoa' },
  ATA: { coordinates: [0, -72.822042], place_name: 'Antarctica' },
  ATF: { coordinates: [70.21919669, -49.34904359], place_name: 'French Southern and Antarctic Lands' },
  ATG: { coordinates: [-61.84387674, 17.11793422], place_name: 'Antigua and Barbuda' },
  AUS: { coordinates: [134.489562606981, -25.7349684916223], place_name: 'Australia' },
  AUT: { coordinates: [14.3001435907641, 47.6077978292689], place_name: 'Austria' },
  AZE: { coordinates: [47.720341220495, 40.418259613178], place_name: 'Azerbaijan' },
  BDI: { coordinates: [29.8871461223835, -3.5324543338914], place_name: 'Burundi' },
  BEL: { coordinates: [4.63357500000001, 50.438696], place_name: 'Belgium' },
  BEN: { coordinates: [2.42667424920265, 10.3383829799812], place_name: 'Benin' },
  BES: { coordinates: [-68.23333, 12.18333], place_name: 'Caribbean Netherlands' },
  BFA: { coordinates: [-1.57306231994955, 12.2779295146076], place_name: 'Burkina Faso' },
  BGD: { coordinates: [90.0779740421191, 24.3476077999364], place_name: 'Bangladesh' },
  BGR: { coordinates: [25.2315070071904, 42.7613767127692], place_name: 'Bulgaria' },
  BHR: { coordinates: [50.5596439032492, 26.0224069941867], place_name: 'Bahrain' },
  BHS: { coordinates: [-77.3408, 25.07471], place_name: 'The Bahamas' },
  BIH: { coordinates: [17.7865310090801, 44.168115060358], place_name: 'Bosnia and Herzegovina' },
  BLM: { coordinates: [-62.8561549999996, 17.9185908999997], place_name: 'Saint-Barthélemy' },
  BLR: { coordinates: [28.0467875099009, 53.5399976445262], place_name: 'Belarus' },
  BLZ: { coordinates: [-88.686006535616, 17.2168536428077], place_name: 'Belize' },
  BMU: { coordinates: [-64.7370103996652, 32.3179203152518], place_name: 'Bermuda' },
  BOL: { coordinates: [-64.2696051242704, -16.9706623441227], place_name: 'Bolivia' },
  BRA: { coordinates: [-51.6197890205486, -9.58890301712257], place_name: 'Brazil' },
  BRB: { coordinates: [-59.5619546611369, 13.1787146900535], place_name: 'Barbados' },
  BRN: { coordinates: [114.562410992128, 4.56546705389121], place_name: 'Brunei' },
  BTN: { coordinates: [90.4294341148677, 27.415414814619], place_name: 'Bhutan' },
  BVT: { coordinates: [3.4, -54.43333], place_name: 'Bouvet Island' },
  BWA: { coordinates: [24.3162647690614, -22.2129427788611], place_name: 'Botswana' },
  CAF: { coordinates: [20.4828261100212, 6.57134078462119], place_name: 'Central African Republic' },
  CAN: { coordinates: [-105.750595856519, 55.5859012851966], place_name: 'Canada' },
  CCK: { coordinates: [96.83103701, -12.18785286], place_name: 'Cocos' },
  CHE: { coordinates: [8.23439191387853, 46.8024955829499], place_name: 'Switzerland' },
  CHL: { coordinates: [-69.761008, -26.783346], place_name: 'Chile' },
  CHN: { coordinates: [101.901875103385, 35.4867029846329], place_name: "People's Republic of China" },
  CIV: { coordinates: [-5.37900739607192, 7.80656285654034], place_name: 'Ivory Coast' },
  CMR: { coordinates: [12.2137541551234, 4.80651220617253], place_name: 'Cameroon' },
  COD: { coordinates: [23.1668993658996, -1.17291850148401], place_name: 'Democratic Republic of the Congo' },
  COG: { coordinates: [15.9928582277703, -0.30560549008052], place_name: 'Republic of the Congo' },
  COK: { coordinates: [-159.7711563, -21.2368447000001], place_name: 'Cook Islands' },
  COL: { coordinates: [-73.129056, 3.06508799999999], place_name: 'Colombia' },
  COM: { coordinates: [43.2541677, -11.70198978], place_name: 'Comoros' },
  CPV: { coordinates: [-23.509, 14.918], place_name: 'Cape Verde' },
  CRI: { coordinates: [-84.2009147613538, 10.2577944410312], place_name: 'Costa Rica' },
  CUB: { coordinates: [-79.2366720528138, 21.9468717021679], place_name: 'Cuba' },
  CUW: { coordinates: [-68.9817448480808, 12.178308183856], place_name: 'Curaçao' },
  CXR: { coordinates: [105.6329821, -10.4878279000001], place_name: 'Christmas Island' },
  CYM: { coordinates: [-81.2384511989646, 19.3086622401692], place_name: 'Cayman Islands' },
  CYP: { coordinates: [33.2217624140819, 35.0458816072997], place_name: 'Cyprus' },
  CZE: { coordinates: [15.3384118376873, 49.7428590048094], place_name: 'Czech Republic' },
  DEU: { coordinates: [10.0183432948567, 51.1334813439932], place_name: 'Germany' },
  DJI: { coordinates: [42.5777653608456, 11.7496765333164], place_name: 'Djibouti' },
  DMA: { coordinates: [-61.355526932894, 15.4365521527403], place_name: 'Dominica' },
  DNK: { coordinates: [10.0462968058278, 55.9633978748347], place_name: 'Denmark' },
  DOM: { coordinates: [-70.1067224933053, 18.6062576970524], place_name: 'Dominican Republic' },
  DZA: { coordinates: [2.63238813336793, 28.1632395923063], place_name: 'Algeria' },
  ECU: { coordinates: [-78.4329147227382, -1.16017132420716], place_name: 'Ecuador' },
  EGY: { coordinates: [29.871903452398, 26.4941838299718], place_name: 'Egypt' },
  ERI: { coordinates: [38.584156324299, 15.6805129748268], place_name: 'Eritrea' },
  ESH: { coordinates: [-13.7046095218304, 24.6008820899188], place_name: 'Western Sahara' },
  ESP: { coordinates: [-4.05568501525488, 41.2948556295683], place_name: 'Spain' },
  EST: { coordinates: [25.7615268448868, 58.7783968568071], place_name: 'Estonia' },
  ETH: { coordinates: [39.6160319910272, 8.62621960079895], place_name: 'Ethiopia' },
  FIN: { coordinates: [26.199539005192, 62.7777539652943], place_name: 'Finland' },
  FJI: { coordinates: [178.4406, -18.1456], place_name: 'Fiji' },
  FLK: { coordinates: [-57.87147544, -51.69302404], place_name: 'Falkland Islands' },
  FRA: { coordinates: [2.61878695312962, 47.8249046208979], place_name: 'France' },
  FRO: { coordinates: [-6.88410945710822, 62.0310655277591], place_name: 'Faroe Islands' },
  FSM: { coordinates: [158.16183, 6.90957], place_name: 'Federated States of Micronesia' },
  GAB: { coordinates: [11.7972366735751, -0.590945177481755], place_name: 'Gabon' },
  GBR: { coordinates: [-2.36966957036279, 54.2379333607472], place_name: 'United Kingdom' },
  GEO: { coordinates: [43.5174484608787, 42.1763109186415], place_name: 'Georgia' },
  GGY: { coordinates: [-2.57336491, 49.45828447], place_name: 'Guernsey' },
  GHA: { coordinates: [-1.16759442759906, 6.88085426914622], place_name: 'Ghana' },
  GIB: { coordinates: [-5.35457429, 36.14087689], place_name: 'Gibraltar' },
  GIN: { coordinates: [-11.0298621655307, 10.7855460398783], place_name: 'Guinea' },
  GLP: { coordinates: [-61.72715035, 15.99454009], place_name: 'Guadeloupe' },
  GMB: { coordinates: [-15.912854478675, 13.4445255191194], place_name: 'The Gambia' },
  GNB: { coordinates: [-11.0298621655307, 10.7855460398783], place_name: 'Guinea' },
  GNQ: { coordinates: [10.5257705053847, 1.61213015485833], place_name: 'Equatorial Guinea' },
  GRC: { coordinates: [23.8285537394706, 38.5890212896367], place_name: 'Greece' },
  GRD: { coordinates: [-61.6793774505556, 12.1129258398845], place_name: 'Grenada' },
  GRL: { coordinates: [-41.3894770446402, 74.7209117556808], place_name: 'Greenland' },
  GTM: { coordinates: [-90.3900017126126, 15.6055893260292], place_name: 'Guatemala' },
  GUF: { coordinates: [-53.1743920884317, 4.35792079157208], place_name: 'French Guiana' },
  GUM: { coordinates: [144.775596791471, 13.4435651676475], place_name: 'Guam' },
  GUY: { coordinates: [-58.9747808781477, 5.62382279034036], place_name: 'Guyana' },
  HKG: { coordinates: [114.15861, 22.27833], place_name: 'Hong Kong' },
  HMD: { coordinates: [73.51267, -53.08915], place_name: 'Heard Island and McDonald Islands' },
  HND: { coordinates: [-86.9216408872841, 14.7616644478253], place_name: 'Honduras' },
  HRV: { coordinates: [16.6791068850861, 45.6649521968376], place_name: 'Croatia' },
  HTI: { coordinates: [-72.434514974505, 19.1824357256899], place_name: 'Haiti' },
  HUN: { coordinates: [19.4993490091469, 47.0602667471763], place_name: 'Hungary' },
  IDN: { coordinates: [106.82721585, -6.17555357], place_name: 'Indonesia' },
  IMN: { coordinates: [-4.5258501593996, 54.2290802101343], place_name: 'Isle of Man' },
  IND: { coordinates: [78.476681027237, 22.1991660760527], place_name: 'India' },
  IOT: { coordinates: [72.37749449, -7.26059464], place_name: 'British Indian Ocean Territory' },
  IRL: { coordinates: [-7.73764888796793, 53.3054943871234], place_name: 'Ireland' },
  IRN: { coordinates: [54.3013740876592, 32.5658376002324], place_name: 'Iran' },
  IRQ: { coordinates: [43.4047161632042, 33.0480556443919], place_name: 'Iraq' },
  ISL: { coordinates: [-18.6054668169534, 64.9975884448459], place_name: 'Iceland' },
  ISR: { coordinates: [34.8419985253627, 31.8472608144505], place_name: 'Israel' },
  ITA: { coordinates: [12.6463610364431, 42.5041539170675], place_name: 'Italy' },
  JAM: { coordinates: [-77.3192220134904, 18.1512945138], place_name: 'Jamaica' },
  JEY: { coordinates: [-2.14197981414417, 49.2184900496874], place_name: 'Jersey' },
  JOR: { coordinates: [36.4358628369717, 31.0101920713363], place_name: 'Jordan' },
  JPN: { coordinates: [138.592229549504, 36.3864928218528], place_name: 'Japan' },
  KAZ: { coordinates: [67.3017735657682, 48.160088082685], place_name: 'Kazakhstan' },
  KEN: { coordinates: [37.8578818658854, 0.529862476788944], place_name: 'Kenya' },
  KGZ: { coordinates: [74.5555962804371, 41.465053955426], place_name: 'Kyrgyzstan' },
  KHM: { coordinates: [104.923981338048, 12.4576331842438], place_name: 'Cambodia' },
  KIR: { coordinates: [-157.371021236442, 1.83893628591267], place_name: 'Kiribati' },
  KNA: { coordinates: [-62.7535176302248, 17.3261893181251], place_name: 'Saint Kitts and Nevis' },
  KOR: { coordinates: [128.168944342317, 36.5362364654109], place_name: 'South Korea' },
  KWT: { coordinates: [47.5906041080513, 29.3412115743027], place_name: 'Kuwait' },
  LAO: { coordinates: [102.593736567576, 19.9225890014436], place_name: 'Laos' },
  LBN: { coordinates: [35.888026075855, 33.9202654117664], place_name: 'Lebanon' },
  LBR: { coordinates: [-9.30791350606419, 6.44809185243873], place_name: 'Liberia' },
  LBY: { coordinates: [18.0232797726029, 27.0439610747292], place_name: 'Libya' },
  LCA: { coordinates: [-60.9687124495575, 13.897869297883], place_name: 'Saint Lucia' },
  LIE: { coordinates: [9.55426914739629, 47.1518475849904], place_name: 'Liechtenstein' },
  LKA: { coordinates: [80.7047272491285, 7.60808521895433], place_name: 'Sri Lanka' },
  LSO: { coordinates: [28.2430108685831, -29.5809998474103], place_name: 'Lesotho' },
  LTU: { coordinates: [23.9315379882448, 55.4874125822773], place_name: 'Lithuania' },
  LUX: { coordinates: [6.08781366657564, 49.7706279766425], place_name: 'Luxembourg' },
  LVA: { coordinates: [24.8625932740492, 56.9590654127872], place_name: 'Latvia' },
  MAC: { coordinates: [113.56, 22.15], place_name: 'Macau' },
  MAF: { coordinates: [-63.0507908400355, 18.0886466717115], place_name: 'Saint Martin' },
  MAR: { coordinates: [-6.01707272732872, 32.3507513130338], place_name: 'Morocco' },
  MCO: { coordinates: [7.4189617, 43.73248184], place_name: 'Monaco' },
  MDA: { coordinates: [28.5741781104524, 47.1938708692964], place_name: 'Moldova' },
  MDG: { coordinates: [46.7059842741429, -19.3735339420708], place_name: 'Madagascar' },
  MDV: { coordinates: [73.51104943, 4.17887365], place_name: 'Maldives' },
  MEX: { coordinates: [-102.532867448126, 23.9504642310912], place_name: 'Mexico' },
  MHL: { coordinates: [171.37961868, 7.08908689], place_name: 'Marshall Islands' },
  MKD: { coordinates: [21.6974757513494, 41.5996826646442], place_name: 'North Macedonia' },
  MLI: { coordinates: [-1.25214497310038, 17.3503352399376], place_name: 'Mali' },
  MLT: { coordinates: [14.4419213796182, 35.890522427978], place_name: 'Malta' },
  MMR: { coordinates: [96.5069211391735, 21.1543188078769], place_name: 'Myanmar' },
  MNE: { coordinates: [19.2507340776716, 42.7904432662241], place_name: 'Montenegro' },
  MNG: { coordinates: [103.083217801107, 46.8352906606684], place_name: 'Mongolia' },
  MNP: { coordinates: [145.75323247, 15.1884969], place_name: 'Northern Mariana Islands' },
  MOZ: { coordinates: [34.7501973908725, -18.0874664869235], place_name: 'Mozambique' },
  MRT: { coordinates: [-10.5327926241955, 19.7574723127526], place_name: 'Mauritania' },
  MSR: { coordinates: [-62.1916845999998, 16.7417043], place_name: 'Montserrat' },
  MTQ: { coordinates: [-61.0212870487474, 14.6525485200192], place_name: 'Martinique' },
  MUS: { coordinates: [57.5025125, -20.16385665], place_name: 'Mauritius' },
  MWI: { coordinates: [33.739163883354, -13.2158036349607], place_name: 'Malawi' },
  MYS: { coordinates: [102.275719605501, 4.49664266041942], place_name: 'Malaysia' },
  MYT: { coordinates: [45.1351604116082, -12.8197956282959], place_name: 'Mayotte' },
  NAM: { coordinates: [17.2887615554773, -21.2010102346557], place_name: 'Namibia' },
  NCL: { coordinates: [165.715489207242, -21.3163377992766], place_name: 'New Caledonia' },
  NER: { coordinates: [9.39764774206789, 17.4261488452015], place_name: 'Niger' },
  NFK: { coordinates: [167.94972, -29.03333], place_name: 'Norfolk Island' },
  NGA: { coordinates: [8.10530640960786, 9.59395988695573], place_name: 'Nigeria' },
  NIC: { coordinates: [-84.9199411471587, 12.3355420743792], place_name: 'Nicaragua' },
  NIU: { coordinates: [-169.8666861, -19.0249700000001], place_name: 'Niue' },
  NLD: { coordinates: [5.61349061168593, 51.9724664894952], place_name: 'Netherlands' },
  NOR: { coordinates: [8.80482073895072, 61.2483331493152], place_name: 'Norway' },
  NPL: { coordinates: [83.9385480132428, 28.2530072798101], place_name: 'Nepal' },
  NRU: { coordinates: [166.929376519841, -0.522103115219411], place_name: 'Nauru' },
  NZL: { coordinates: [171.779900195937, -41.8388752215127], place_name: 'New Zealand' },
  OMN: { coordinates: [57.0864239443949, 21.3836372099704], place_name: 'Oman' },
  PAK: { coordinates: [67.6952367278874, 28.1863846711864], place_name: 'Pakistan' },
  PAN: { coordinates: [-80.2681751731831, 8.70473482400532], place_name: 'Panama' },
  PCN: { coordinates: [-130.10036259, -25.06689772], place_name: 'Pitcairn Islands' },
  PER: { coordinates: [-75.3111319559783, -10.1510925136244], place_name: 'Peru' },
  PHL: { coordinates: [120.98177916, 14.58678841], place_name: 'Philippines' },
  PLW: { coordinates: [134.575242448648, 7.51507487829116], place_name: 'Palau' },
  PNG: { coordinates: [145.241749381464, -6.4783775316607], place_name: 'Papua New Guinea' },
  POL: { coordinates: [19.30063630556, 52.1246099075455], place_name: 'Poland' },
  PRI: { coordinates: [-66.4623392630918, 18.2213294459009], place_name: 'Puerto Rico' },
  PRK: { coordinates: [126.847799277746, 40.3470993177997], place_name: 'North Korea' },
  PRT: { coordinates: [-8.56273059638958, 39.6009946583093], place_name: 'Portugal' },
  PRY: { coordinates: [-58.3910238917002, -23.236210654675], place_name: 'Paraguay' },
  PSE: { coordinates: [35.2, 31.88333], place_name: 'Palestine' },
  PYF: { coordinates: [-149.56466734, -17.53812232], place_name: 'French Polynesia' },
  QAT: { coordinates: [51.1912009969872, 25.3150785008825], place_name: 'Qatar' },
  REU: { coordinates: [55.5381792270415, -21.1216612099287], place_name: 'Réunion' },
  ROU: { coordinates: [24.9692584752492, 45.8436147575587], place_name: 'Romania' },
  RUS: { coordinates: [96.6697054604756, 61.9945734073292], place_name: 'Russia' },
  RWA: { coordinates: [29.917651661429, -1.86550575827486], place_name: 'Rwanda' },
  SAU: { coordinates: [44.652426, 23.384784], place_name: 'Saudi Arabia' },
  SDN: { coordinates: [30.049948137055, 13.831539138903], place_name: 'Sudan' },
  SEN: { coordinates: [-14.8208799701359, 15.2214469730201], place_name: 'Senegal' },
  SGP: { coordinates: [103.808052586332, 1.3516161224392], place_name: 'Singapore' },
  SGS: { coordinates: [-36.49545116, -54.28330693], place_name: 'South Georgia and the South Sandwich Islands' },
  SHN: { coordinates: [-5.71833264, -15.92459139], place_name: 'Saint Helena' },
  SJM: { coordinates: [20.294606, 78.715404], place_name: 'Svalbard and Jan Mayen' },
  SLB: { coordinates: [159.95268507, -9.43058362], place_name: 'Solomon Islands' },
  SLE: { coordinates: [-11.7919215799479, 8.5602844366464], place_name: 'Sierra Leone' },
  SLV: { coordinates: [-88.8665114518297, 13.7368969076932], place_name: 'El Salvador' },
  SMR: { coordinates: [12.4609765471166, 43.9429432390468], place_name: 'San Marino' },
  SOM: { coordinates: [47.3258529830799, 5.78639625215069], place_name: 'Somalia' },
  SPM: { coordinates: [-56.3222402999999, 46.8964295999999], place_name: 'Saint Pierre and Miquelon' },
  SRB: { coordinates: [20.7952998132557, 44.2267366369366], place_name: 'Serbia' },
  SSD: { coordinates: [30.0548899999997, 7.2653860999999], place_name: 'South Sudan' },
  STP: { coordinates: [6.73028605, 0.33677848], place_name: 'São Tomé and Príncipe' },
  SUR: { coordinates: [-55.9118262275729, 3.69296650830846], place_name: 'Suriname' },
  SVK: { coordinates: [19.4916510938648, 48.7075308687827], place_name: 'Slovakia' },
  SVN: { coordinates: [14.6940763981247, 46.1694584888026], place_name: 'Slovenia' },
  SWE: { coordinates: [17.6754094331351, 64.9648751621697], place_name: 'Sweden' },
  SWZ: { coordinates: [31.4975289562193, -26.5626420959616], place_name: 'Eswatini' },
  SXM: { coordinates: [-63.0425714978791, 18.0417616931319], place_name: 'Sint Maarten' },
  SYC: { coordinates: [55.45306535, -4.62309306], place_name: 'Seychelles' },
  SYR: { coordinates: [38.50559189697, 35.0130478400731], place_name: 'Syria' },
  TCA: { coordinates: [-71.6201782999998, 21.7214683], place_name: 'Turks and Caicos Islands' },
  TCD: { coordinates: [18.6644791159188, 15.3611667142703], place_name: 'Chad' },
  TGO: { coordinates: [1.04255291389074, 8.76622092166324], place_name: 'Togo' },
  THA: { coordinates: [101.017437716385, 15.127333464868], place_name: 'Thailand' },
  TJK: { coordinates: [71.0420037711059, 38.8385084835418], place_name: 'Tajikistan' },
  TKL: { coordinates: [-171.84954066, -9.19897526], place_name: 'Tokelau' },
  TKM: { coordinates: [59.3843773120436, 39.1222850315681], place_name: 'Turkmenistan' },
  TLS: { coordinates: [125.77338687348, -8.84990758490557], place_name: 'East Timor' },
  TON: { coordinates: [-175.20610125, -21.13637335], place_name: 'Tonga' },
  TTO: { coordinates: [-61.2531757283896, 10.4686430117018], place_name: 'Trinidad and Tobago' },
  TUN: { coordinates: [9.56116835557131, 34.1107038598115], place_name: 'Tunisia' },
  TUR: { coordinates: [35.1795933806353, 39.0604813685019], place_name: 'Turkey' },
  TUV: { coordinates: [179.1952237, -8.52427147], place_name: 'Tuvalu' },
  TWN: { coordinates: [120.930229378541, 23.7779779950014], place_name: 'Taiwan' },
  TZA: { coordinates: [34.8234540265851, -6.27035338020445], place_name: 'Tanzania' },
  UGA: { coordinates: [32.3862178703861, 1.27996353132461], place_name: 'Uganda' },
  UKR: { coordinates: [31.3202829593814, 49.3227937844972], place_name: 'Ukraine' },
  UMI: { coordinates: [166.636881, 19.305073], place_name: 'United States Minor Outlying Islands' },
  URY: { coordinates: [-56.012396238658, -32.7996455126793], place_name: 'Uruguay' },
  USA: { coordinates: [-97.9222112121185, 39.3812661305678], place_name: 'United States' },
  UZB: { coordinates: [63.169371992914, 41.7504367984144], place_name: 'Uzbekistan' },
  VAT: { coordinates: [12.453, 41.904], place_name: 'Vatican City' },
  VCT: { coordinates: [-61.1937651880492, 13.2548078283631], place_name: 'Saint Vincent and the Grenadines' },
  VEN: { coordinates: [-65.801997444749, 7.61957014788959], place_name: 'Venezuela' },
  VGB: { coordinates: [-64.62317233, 18.42692843], place_name: 'British Virgin Islands' },
  VIR: { coordinates: [-64.7625859114436, 17.7355381596591], place_name: 'US Virgin Islands' },
  VNM: { coordinates: [108.339537475899, 14.3154241771087], place_name: 'Vietnam' },
  VUT: { coordinates: [168.31741541, -17.74296727], place_name: 'Vanuatu' },
  WLF: { coordinates: [-176.18564416, -13.28078435], place_name: 'Wallis and Futuna' },
  WSM: { coordinates: [-171.76374956, -13.83932976], place_name: 'Samoa' },
  YEM: { coordinates: [47.6219307491681, 15.9378350127516], place_name: 'Yemen' },
  ZAF: { coordinates: [23.9137106762068, -28.3782721906973], place_name: 'South Africa' },
  ZMB: { coordinates: [27.4306751716734, -14.0049082837326], place_name: 'Zambia' },
  ZWE: { coordinates: [29.9386693711454, -19.1894587635565], place_name: 'Zimbabwe' },
};
